<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        //借用父构造函数继承属性
        //1.父构造函数
        function Father (uname,age) {
            // this指向父构造函数的对象实例
            this.uname = uname;
            this.age =age;
        }
        Father.prototype.money = function() {
            console.log(100000)
        }
        //2.子构造函数
        function Son(uname,age,score) {
            // this指向子构造函数的对象实例,把父函数的this改为子函数的this
            Father.call(this,uname,age)
            this.score = score
        }
        // son.prototype= Father.prototype //有问题，如果修改了子原型对象，父原型对象也会一起变化
        Son.prototype = new Father();
        //如果利用对象形式修改了原型对象，别忘了利用constructor指回原来的原型对象
        Son.prototype.constructor = Son;
        Son.prototype.exam = function() {
            console.log('孩子要考试')
        }
        var son = new Son('刘德华',18)
        console.log(son)
        console.log(Son.prototype.constructor);
    </script>
</body>
</html>